The present invention relates network optimization in general and in particular to accelerating network transactions including data from files and resources that can be locked to control inconsistent access. The present invention also relates to acceleration of protocols used to access shared data objects.
Applications often use locks or other types of access control restrictions to prevent, reduce, or eliminate inconsistent accesses to data in files and other resources. An inconsistent access, for example, might occur if one application attempts to change data in a file while another application attempts to read from the file at the same time. Locks and other types of access control restrictions can prevent applications from writing and/or reading from files while another application is modifying the file. Locks and other types of access control restrictions are often implemented within file access protocols, such as CIFS and NFS.
Additionally, some applications may use protocol-independent mechanisms to prevent, reduce, or eliminate inconsistent accesses to data in files and other resources. For example, one application may set a signal or flag to indicate to other applications that the file is in use. Signals and flags can be implemented by locking a predetermined offset in a file, creating or modifying a separate file or other resource, or using any other inter-application communication technique.
WAN accelerators optimize network traffic to improve network performance in reading and/or writing data over a network. WAN accelerators are referred to in the art by many different terms, including, but not limited to, transaction accelerators, WAN optimizers, WAN optimization controllers (WOCs), wide-area data services (WDS) appliances, WAN traffic optimizers (WTOs), and protocol accelerators or optimizers. Additionally, techniques for optimizing network traffic to improve network performance in reading and/or writing data over a network are referred to in the art by many different terms, including, but not limited to, WAN acceleration, transaction acceleration, transaction pipelining, protocol pipelining, request prediction, application flow acceleration, and protocol acceleration. Herein, the term “WAN accelerator” is used to refer to such devices and “WAN acceleration” is used to refer to such techniques.
Previously, WAN accelerators must respect the locks and other access control restrictions set by applications and protocols to prevent errors or data corruption. Often, WAN accelerators operate more conservatively due to locks and access control restrictions, for example by reducing or disabling WAN acceleration for applications and files associated with locks. This reduces application performance when accessing files via a network.